package it.csi.finregio.finreges.presentation.form;

import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

import it.csi.finregio.finreges.dto.Riferimento;


public class SchedaForm extends CommonSchedaForm {

	/**
	 * 
	 */
	private static final long serialVersionUID = 60845635196312863L;

	public static final int STANDARD = 1;

	public static final int NON_STANDARD = 2;

	public static final int ALTRI_ENTI = 3;
	
	
	private String classificazione="-1";
	private String sottoClassificazione="-1";
	private String noteClassificazione;
	private String titolo;
	private String noteAlTitolo;
	private transient HttpServletRequest request;
	
	//TAB Riferimenti
	private String tipoRiferimento;
	private String altroRiferimento;
	private String dataRiferimento;
	private String numeroAtto;
	private String numeroArticolo;
	private String comma;
	private String commaAggiuntivo;
	private String lettera;
	private String pubblicazione;
	private String noteRiferimentiNormativi;
	private Collection tabellaRiferimentiNormativi=new ArrayList();
	private String riferimentoInserito;
	
	//TAB Ass/Ente
	private String progressivoDirezione;
	private String idEnte;
	private String progressivoSettore;
	private EntiSchedaContainer tabellaInformazioniAssEnte;
	private String modalitaInserimento;
	private Collection assessoratiDirezSettScelti;//TODO da eliminare???
	private String email1;
	private String email2;
	private String email3;
	private String sito1;
	private String sito2;
	private String sito3;
	private Collection direzioniLibereInserite;
	private Collection settoriLiberiInseriti;
	private String altreInfoAssEnte;
	private String noteAssEnte;
	
	//DESTINATARI/PROCEDURE/FINANZIAMENTI
	private StringBuffer destinatari;
	private StringBuffer procedura;
	private StringBuffer finanziamenti;
	private String noteDestinatari;
	private String noteProcedura;
	private String noteFinanziamenti;
	private String linkAssEnte;
	private String idDestinatario;

	//NOTE E SCADENZA
	private String idNota;
	private String noteInterne;
	private String dataScadenza;
	private String termineScadenza;
	private String tipoInserimento="-1";
	
	//FORM DI RICERCA
	private String schedaScaduta;
	
	//STAMPA
	private String dallaSchedaN;
	private String allaSchedaN;
	
	
	//MANUTENZIONE TABELLE
	private String descrizioneClassificazione;
	private String descrizioneSottoClassificazione;
	private String descrizioneAssessorato;
	private String descrizioneDirezione;
	private String descrizioneSettore;
	private String descrizioneTipoRiferimento;
	private String abbreviazioneRiferimento;
	
	
	public String getRiferimentoInserito() {
		return riferimentoInserito;
	}
	public void setRiferimentoInserito(String riferimentoInserito) {
		this.riferimentoInserito = riferimentoInserito;
	}
	public String getTipoRiferimento() {
		return tipoRiferimento;
	}
	public void setTipoRiferimento(String tipoRiferimento) {
		this.tipoRiferimento = tipoRiferimento;
	}
	public String getClassificazione() {
		return classificazione;
	}
	public void setClassificazione(String classificazione) {
		this.classificazione = classificazione;
	}
	public String getSottoClassificazione() {
		return sottoClassificazione;
	}
	public void setSottoClassificazione(String sottoClassificazione) {
		this.sottoClassificazione = sottoClassificazione;
	}
	public String getNoteClassificazione() {
		return noteClassificazione;
	}
	public void setNoteClassificazione(String noteClassificazione) {
		this.noteClassificazione = noteClassificazione;
	}
	public String getTitolo() {
		return titolo;
	}
	public void setTitolo(String titolo) {
		this.titolo = titolo;
	}
	public String getNoteAlTitolo() {
		return noteAlTitolo;
	}
	public void setNoteAlTitolo(String noteAlTitolo) {
		this.noteAlTitolo = noteAlTitolo;
	}
	public String getAltroRiferimento() {
		return altroRiferimento;
	}
	public void setAltroRiferimento(String altroRiferimento) {
		this.altroRiferimento = altroRiferimento;
	}
	public String getDataRiferimento() {
		return dataRiferimento;
	}
	public void setDataRiferimento(String dataRiferimento) {
		this.dataRiferimento = dataRiferimento;
	}
	public String getNumeroAtto() {
		return numeroAtto;
	}
	public void setNumeroAtto(String numeroAtto) {
		this.numeroAtto = numeroAtto;
	}
	public String getNumeroArticolo() {
		return numeroArticolo;
	}
	public void setNumeroArticolo(String numeroArticolo) {
		this.numeroArticolo = numeroArticolo;
	}
	public String getComma() {
		return comma;
	}
	public void setComma(String comma) {
		this.comma = comma;
	}
	public String getCommaAggiuntivo() {
		return commaAggiuntivo;
	}
	public void setCommaAggiuntivo(String commaAggiuntivo) {
		this.commaAggiuntivo = commaAggiuntivo;
	}
	public String getLettera() {
		return lettera;
	}
	public void setLettera(String lettera) {
		this.lettera = lettera;
	}
	public String getPubblicazione() {
		return pubblicazione;
	}
	public void setPubblicazione(String pubblicazione) {
		this.pubblicazione = pubblicazione;
	}
	public String getNoteRiferimentiNormativi() {
		return noteRiferimentiNormativi;
	}
	public void setNoteRiferimentiNormativi(String noteRiferimentiNormativi) {
		this.noteRiferimentiNormativi = noteRiferimentiNormativi;
	}
	public Collection getTabellaRiferimentiNormativi() {
		if(tabellaRiferimentiNormativi==null){
			return new ArrayList();
		}
		return tabellaRiferimentiNormativi;
	}
	public void setTabellaRiferimentiNormativi(
			Collection tabellaRifornimentiNormativi) {
		this.tabellaRiferimentiNormativi = tabellaRifornimentiNormativi;
	}
	public HttpServletRequest getRequest() {
		return request;
	}
	public void setRequest(HttpServletRequest request) {
		this.request = request;
	}
	public String getProgressivoDirezione() {
		// TODO Auto-generated method stub
		return progressivoDirezione;
	}
	public void setProgressivoDirezione(String idDirezione) {
		this.progressivoDirezione = idDirezione;
	}
	public String getIdEnte() {
		return idEnte;
	}
	public void setIdEnte(String idEnte) {
		this.idEnte = idEnte;
	}
	public String getProgressivoSettore() {
		return progressivoSettore;
	}
	public void setProgressivoSettore(String idSettore) {
		this.progressivoSettore = idSettore;
	}
	public EntiSchedaContainer getTabellaInformazioniAssEnte() {
		if(tabellaInformazioniAssEnte==null){
			return new EntiSchedaContainer();
		}
		return tabellaInformazioniAssEnte;
	}
	public void setTabellaInformazioniAssEnte(EntiSchedaContainer tabellaInformazioniAssEnte) {
		this.tabellaInformazioniAssEnte = tabellaInformazioniAssEnte;
	}
	public String getModalitaInserimento() {
		return modalitaInserimento;
	}
	public void setModalitaInserimento(String modalitaInserimento) {
		this.modalitaInserimento = modalitaInserimento;
	}
	public Collection getAssessoratiDirezSettScelti() {
		return assessoratiDirezSettScelti;
	}
	public void setAssessoratiDirezSettScelti(Collection assessoratiDirezSettScelti) {
		this.assessoratiDirezSettScelti = assessoratiDirezSettScelti;
	}
	public String getEmail1() {
		return email1;
	}
	public void setEmail1(String email1) {
		this.email1 = email1;
	}
	public String getEmail2() {
		return email2;
	}
	public void setEmail2(String email2) {
		this.email2 = email2;
	}
	public String getEmail3() {
		return email3;
	}
	public void setEmail3(String email3) {
		this.email3 = email3;
	}
	public String getSito1() {
		return sito1;
	}
	public void setSito1(String sito1) {
		this.sito1 = sito1;
	}
	public String getSito2() {
		return sito2;
	}
	public void setSito2(String sito2) {
		this.sito2 = sito2;
	}
	public String getSito3() {
		return sito3;
	}
	public void setSito3(String sito3) {
		this.sito3 = sito3;
	}
	public Collection getDirezioniLibereInserite() {
		if(direzioniLibereInserite==null){
			return new ArrayList();
		}
		return direzioniLibereInserite;
	}
	public void setDirezioniLibereInserite(Collection direzioniLibereInserite) {
		this.direzioniLibereInserite = direzioniLibereInserite;
	}
	public Collection getSettoriLiberiInseriti() {
		if(settoriLiberiInseriti==null){
			return new ArrayList();
		}
		return settoriLiberiInseriti;
	}
	public void setSettoriLiberiInseriti(Collection settoriLiberiInseriti) {
		this.settoriLiberiInseriti = settoriLiberiInseriti;
	}
	public String getAltreInfoAssEnte() {
		return altreInfoAssEnte;
	}
	public void setAltreInfoAssEnte(String altreInfoAssEnte) {
		this.altreInfoAssEnte = altreInfoAssEnte;
	}
	public String getNoteAssEnte() {
		return noteAssEnte;
	}
	public void setNoteAssEnte(String noteAssEnte) {
		this.noteAssEnte = noteAssEnte;
	}
	public String getDestinatari() {
		if(destinatari==null){
			return null;
		}
		String tmpDest = replaceQuote(destinatari.toString());
		
		return tmpDest;
	}
	
	public void setDestinatari(String destinatari) {
		this.destinatari =destinatari==null?null:new StringBuffer(destinatari);
	}
	public String getProcedura() {
		if(procedura==null){
			return null;
		}
		String result = replaceQuote( procedura.toString());

		return  result;
	}
	public void setProcedura(String procedura) {
		this.procedura = procedura==null?null:new StringBuffer(procedura);
	}
	public String getFinanziamenti() {
		if(finanziamenti==null){
			return null;
		}
		String result = replaceQuote(finanziamenti.toString());
		return result;
	}
	public void setFinanziamenti(String finanziamenti) {
		this.finanziamenti = finanziamenti==null?null:new StringBuffer(finanziamenti);
	}
	public String getNoteDestinatari() {
		return noteDestinatari;
	}
	public void setNoteDestinatari(String noteDestinatari) {
		this.noteDestinatari = noteDestinatari;
	}
	public String getNoteProcedura() {
		return noteProcedura;
	}
	public void setNoteProcedura(String noteProcedura) {
		this.noteProcedura = noteProcedura;
	}
	public String getNoteFinanziamenti() {
		return noteFinanziamenti;
	}
	public void setNoteFinanziamenti(String noteFinanziamenti) {
		this.noteFinanziamenti = noteFinanziamenti;
	}
	
	public String getLinkAssEnte() {
		return linkAssEnte;
	}
	public void setLinkAssEnte(String linkAssEnte) {
		this.linkAssEnte = linkAssEnte;
	}
	public void setIdDestinatario(String idDestinatario) {
		this.idDestinatario=idDestinatario;
	}
	public String getIdDestinatario() {
		return idDestinatario;
	}
	public String getIdNota() {
		return idNota;
	}
	public void setIdNota(String idNota) {
		this.idNota = idNota;
	}
	public String getNoteInterne() {
		return noteInterne;
	}
	public void setNoteInterne(String noteInterne) {
		this.noteInterne = noteInterne;
	}
	public String getDataScadenza() {
		return dataScadenza;
	}
	public void setDataScadenza(String data) {
		this.dataScadenza = data;
	}
	public String getTermineScadenza() {
		return termineScadenza;
	}
	public void setTermineScadenza(String termineScadenza) {
		this.termineScadenza = termineScadenza;
	}
	public String getTipoInserimento() {
		return tipoInserimento;
	}
	public void setTipoInserimento(String tipoInserimento) {
		this.tipoInserimento = tipoInserimento;
	}
	public String getSchedaScaduta() {
		return schedaScaduta;
	}
	public void setSchedaScaduta(String schedaScaduta) {
		this.schedaScaduta = schedaScaduta;
	}
	public String getDallaSchedaN() {
		return dallaSchedaN;
	}
	public void setDallaSchedaN(String dallaSchedaN) {
		this.dallaSchedaN = dallaSchedaN;
	}
	public String getAllaSchedaN() {
		return allaSchedaN;
	}
	public void setAllaSchedaN(String allaSchedaN) {
		this.allaSchedaN = allaSchedaN;
	}
	public String getDescrizioneClassificazione() {
		return descrizioneClassificazione;
	}
	public void setDescrizioneClassificazione(String descrizioneClassificazione) {
		this.descrizioneClassificazione = descrizioneClassificazione;
	}
	public String getDescrizioneSottoClassificazione() {
		return descrizioneSottoClassificazione;
	}
	public void setDescrizioneSottoClassificazione(
			String descrizioneSottoClassificazione) {
		this.descrizioneSottoClassificazione = descrizioneSottoClassificazione;
	}
	public String getDescrizioneAssessorato() {
		return descrizioneAssessorato;
	}
	public void setDescrizioneAssessorato(String descrizioneAssessorato) {
		this.descrizioneAssessorato = descrizioneAssessorato;
	}
	public String getDescrizioneDirezione() {
		return descrizioneDirezione;
	}
	public void setDescrizioneDirezione(String descrizioneDirezione) {
		this.descrizioneDirezione = descrizioneDirezione;
	}
	public String getDescrizioneSettore() {
		return descrizioneSettore;
	}
	public void setDescrizioneSettore(String descrizioneSettore) {
		this.descrizioneSettore = descrizioneSettore;
	}
	
	
	
	
	
	
	
	
	
	/**
	 * @return
	 */
	private String replaceQuote(String s) {
		String tmpDest = s;
		tmpDest = StringUtils.replace(tmpDest, "'", "\'");
		tmpDest = StringUtils.replace(tmpDest, "\"", "\\\"");
		tmpDest = StringUtils.replace(tmpDest, "\r\n", "");
		return tmpDest;
	}
	public String getDescrizioneTipoRiferimento() {
		return descrizioneTipoRiferimento;
	}
	public void setDescrizioneTipoRiferimento(String descrizioneTipoRiferimento) {
		this.descrizioneTipoRiferimento = descrizioneTipoRiferimento;
	}
	public String getAbbreviazioneRiferimento() {
		return abbreviazioneRiferimento;
	}
	public void setAbbreviazioneRiferimento(String abbreviazioneRiferimento) {
		this.abbreviazioneRiferimento = abbreviazioneRiferimento;
	}
}